From 20a59985fe365a703fdf270e15608b5debda20e2 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 11 Jun 2014 17:34:23 +0200 Subject: [PATCH] gesturesingle: Ensure the current button stays set until after the touch/button release This makes gtk_gesture_get_current_button() work properly on GtkGesture::end, and signals spawn from there on subclasses. --- gtk/gtkgesturesingle.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gtk/gtkgesturesingle.c b/gtk/gtkgesturesingle.c index 08e5b42fd5..ac91851808 100644 --- a/gtk/gtkgesturesingle.c +++ b/gtk/gtkgesturesingle.c @@ -131,6 +131,7 @@ gtk_gesture_single_handle_event (GtkEventController *controller, GdkDevice *source_device; GdkInputSource source; guint button = 0, i; + gboolean retval; source_device = gdk_event_get_source_device (event); @@ -204,11 +205,14 @@ gtk_gesture_single_handle_event (GtkEventController *controller, priv->current_button = button; } - else if (sequence == priv->current_sequence && - (event->type == GDK_BUTTON_RELEASE || event->type == GDK_TOUCH_END)) + + retval = GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_single_parent_class)->handle_event (controller, event); + + if (sequence == priv->current_sequence && + (event->type == GDK_BUTTON_RELEASE || event->type == GDK_TOUCH_END)) priv->current_button = 0; - return GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_single_parent_class)->handle_event (controller, event); + return retval; } static void -- 2.30.2